// Generated from src/antlr/ArkcubeScript.g4 by ANTLR 4.9.0-SNAPSHOT


import { ParseTreeListener } from "antlr4ts/tree/ParseTreeListener";

import { ImportStatementContext } from "./ArkcubeScriptParser";
import { ViewStatementContext } from "./ArkcubeScriptParser";
import { VariableDeclStatementContext } from "./ArkcubeScriptParser";
import { FunctionDeclStatementContext } from "./ArkcubeScriptParser";
import { ControlStatementContext } from "./ArkcubeScriptParser";
import { ReturnStatementContext } from "./ArkcubeScriptParser";
import { ExprStatementContext } from "./ArkcubeScriptParser";
import { ArrayTypeContext } from "./ArkcubeScriptParser";
import { SimpleTypeContext } from "./ArkcubeScriptParser";
import { ModuleAliasContext } from "./ArkcubeScriptParser";
import { ModuleSymbolContext } from "./ArkcubeScriptParser";
import { ModuleSymbolAliasContext } from "./ArkcubeScriptParser";
import { ModuleAllSymbolContext } from "./ArkcubeScriptParser";
import { NumberContext } from "./ArkcubeScriptParser";
import { StringLiteralContext } from "./ArkcubeScriptParser";
import { BooleanLiteralContext } from "./ArkcubeScriptParser";
import { NameContext } from "./ArkcubeScriptParser";
import { ArrayIndexContext } from "./ArkcubeScriptParser";
import { MemberRangeContext } from "./ArkcubeScriptParser";
import { DimColonContext } from "./ArkcubeScriptParser";
import { MemberSetContext } from "./ArkcubeScriptParser";
import { PowerLikeContext } from "./ArkcubeScriptParser";
import { PrefixExpressionContext } from "./ArkcubeScriptParser";
import { MultiplyLikeContext } from "./ArkcubeScriptParser";
import { PlusLikeContext } from "./ArkcubeScriptParser";
import { ListLikeContext } from "./ArkcubeScriptParser";
import { CompareLikeContext } from "./ArkcubeScriptParser";
import { LogicLikeContext } from "./ArkcubeScriptParser";
import { PriorityExpressionContext } from "./ArkcubeScriptParser";
import { FunctionApplyContext } from "./ArkcubeScriptParser";
import { DotFunctionApplyContext } from "./ArkcubeScriptParser";
import { ProgramContext } from "./ArkcubeScriptParser";
import { StatContext } from "./ArkcubeScriptParser";
import { ImportStatContext } from "./ArkcubeScriptParser";
import { ViewStatContext } from "./ArkcubeScriptParser";
import { CellViewStatContext } from "./ArkcubeScriptParser";
import { CellEXViewStatContext } from "./ArkcubeScriptParser";
import { CellDBViewStatContext } from "./ArkcubeScriptParser";
import { VariableDeclContext } from "./ArkcubeScriptParser";
import { TypeContext } from "./ArkcubeScriptParser";
import { FunctionDeclContext } from "./ArkcubeScriptParser";
import { ParameterListContext } from "./ArkcubeScriptParser";
import { ParameterContext } from "./ArkcubeScriptParser";
import { BlockContext } from "./ArkcubeScriptParser";
import { IfStatContext } from "./ArkcubeScriptParser";
import { WhileStatContext } from "./ArkcubeScriptParser";
import { ReturnStatContext } from "./ArkcubeScriptParser";
import { ExprContext } from "./ArkcubeScriptParser";
import { FunctionCallContext } from "./ArkcubeScriptParser";
import { ArgumentsContext } from "./ArkcubeScriptParser";
import { DimContext } from "./ArkcubeScriptParser";


/**
 * This interface defines a complete listener for a parse tree produced by
 * `ArkcubeScriptParser`.
 */
export interface ArkcubeScriptListener extends ParseTreeListener {
	/**
	 * Enter a parse tree produced by the `ImportStatement`
	 * labeled alternative in `ArkcubeScriptParser.stat`.
	 * @param ctx the parse tree
	 */
	enterImportStatement?: (ctx: ImportStatementContext) => void;
	/**
	 * Exit a parse tree produced by the `ImportStatement`
	 * labeled alternative in `ArkcubeScriptParser.stat`.
	 * @param ctx the parse tree
	 */
	exitImportStatement?: (ctx: ImportStatementContext) => void;

	/**
	 * Enter a parse tree produced by the `ViewStatement`
	 * labeled alternative in `ArkcubeScriptParser.stat`.
	 * @param ctx the parse tree
	 */
	enterViewStatement?: (ctx: ViewStatementContext) => void;
	/**
	 * Exit a parse tree produced by the `ViewStatement`
	 * labeled alternative in `ArkcubeScriptParser.stat`.
	 * @param ctx the parse tree
	 */
	exitViewStatement?: (ctx: ViewStatementContext) => void;

	/**
	 * Enter a parse tree produced by the `VariableDeclStatement`
	 * labeled alternative in `ArkcubeScriptParser.stat`.
	 * @param ctx the parse tree
	 */
	enterVariableDeclStatement?: (ctx: VariableDeclStatementContext) => void;
	/**
	 * Exit a parse tree produced by the `VariableDeclStatement`
	 * labeled alternative in `ArkcubeScriptParser.stat`.
	 * @param ctx the parse tree
	 */
	exitVariableDeclStatement?: (ctx: VariableDeclStatementContext) => void;

	/**
	 * Enter a parse tree produced by the `FunctionDeclStatement`
	 * labeled alternative in `ArkcubeScriptParser.stat`.
	 * @param ctx the parse tree
	 */
	enterFunctionDeclStatement?: (ctx: FunctionDeclStatementContext) => void;
	/**
	 * Exit a parse tree produced by the `FunctionDeclStatement`
	 * labeled alternative in `ArkcubeScriptParser.stat`.
	 * @param ctx the parse tree
	 */
	exitFunctionDeclStatement?: (ctx: FunctionDeclStatementContext) => void;

	/**
	 * Enter a parse tree produced by the `ControlStatement`
	 * labeled alternative in `ArkcubeScriptParser.stat`.
	 * @param ctx the parse tree
	 */
	enterControlStatement?: (ctx: ControlStatementContext) => void;
	/**
	 * Exit a parse tree produced by the `ControlStatement`
	 * labeled alternative in `ArkcubeScriptParser.stat`.
	 * @param ctx the parse tree
	 */
	exitControlStatement?: (ctx: ControlStatementContext) => void;

	/**
	 * Enter a parse tree produced by the `ReturnStatement`
	 * labeled alternative in `ArkcubeScriptParser.stat`.
	 * @param ctx the parse tree
	 */
	enterReturnStatement?: (ctx: ReturnStatementContext) => void;
	/**
	 * Exit a parse tree produced by the `ReturnStatement`
	 * labeled alternative in `ArkcubeScriptParser.stat`.
	 * @param ctx the parse tree
	 */
	exitReturnStatement?: (ctx: ReturnStatementContext) => void;

	/**
	 * Enter a parse tree produced by the `ExprStatement`
	 * labeled alternative in `ArkcubeScriptParser.stat`.
	 * @param ctx the parse tree
	 */
	enterExprStatement?: (ctx: ExprStatementContext) => void;
	/**
	 * Exit a parse tree produced by the `ExprStatement`
	 * labeled alternative in `ArkcubeScriptParser.stat`.
	 * @param ctx the parse tree
	 */
	exitExprStatement?: (ctx: ExprStatementContext) => void;

	/**
	 * Enter a parse tree produced by the `ArrayType`
	 * labeled alternative in `ArkcubeScriptParser.type`.
	 * @param ctx the parse tree
	 */
	enterArrayType?: (ctx: ArrayTypeContext) => void;
	/**
	 * Exit a parse tree produced by the `ArrayType`
	 * labeled alternative in `ArkcubeScriptParser.type`.
	 * @param ctx the parse tree
	 */
	exitArrayType?: (ctx: ArrayTypeContext) => void;

	/**
	 * Enter a parse tree produced by the `SimpleType`
	 * labeled alternative in `ArkcubeScriptParser.type`.
	 * @param ctx the parse tree
	 */
	enterSimpleType?: (ctx: SimpleTypeContext) => void;
	/**
	 * Exit a parse tree produced by the `SimpleType`
	 * labeled alternative in `ArkcubeScriptParser.type`.
	 * @param ctx the parse tree
	 */
	exitSimpleType?: (ctx: SimpleTypeContext) => void;

	/**
	 * Enter a parse tree produced by the `ModuleAlias`
	 * labeled alternative in `ArkcubeScriptParser.importStat`.
	 * @param ctx the parse tree
	 */
	enterModuleAlias?: (ctx: ModuleAliasContext) => void;
	/**
	 * Exit a parse tree produced by the `ModuleAlias`
	 * labeled alternative in `ArkcubeScriptParser.importStat`.
	 * @param ctx the parse tree
	 */
	exitModuleAlias?: (ctx: ModuleAliasContext) => void;

	/**
	 * Enter a parse tree produced by the `ModuleSymbol`
	 * labeled alternative in `ArkcubeScriptParser.importStat`.
	 * @param ctx the parse tree
	 */
	enterModuleSymbol?: (ctx: ModuleSymbolContext) => void;
	/**
	 * Exit a parse tree produced by the `ModuleSymbol`
	 * labeled alternative in `ArkcubeScriptParser.importStat`.
	 * @param ctx the parse tree
	 */
	exitModuleSymbol?: (ctx: ModuleSymbolContext) => void;

	/**
	 * Enter a parse tree produced by the `ModuleSymbolAlias`
	 * labeled alternative in `ArkcubeScriptParser.importStat`.
	 * @param ctx the parse tree
	 */
	enterModuleSymbolAlias?: (ctx: ModuleSymbolAliasContext) => void;
	/**
	 * Exit a parse tree produced by the `ModuleSymbolAlias`
	 * labeled alternative in `ArkcubeScriptParser.importStat`.
	 * @param ctx the parse tree
	 */
	exitModuleSymbolAlias?: (ctx: ModuleSymbolAliasContext) => void;

	/**
	 * Enter a parse tree produced by the `ModuleAllSymbol`
	 * labeled alternative in `ArkcubeScriptParser.importStat`.
	 * @param ctx the parse tree
	 */
	enterModuleAllSymbol?: (ctx: ModuleAllSymbolContext) => void;
	/**
	 * Exit a parse tree produced by the `ModuleAllSymbol`
	 * labeled alternative in `ArkcubeScriptParser.importStat`.
	 * @param ctx the parse tree
	 */
	exitModuleAllSymbol?: (ctx: ModuleAllSymbolContext) => void;

	/**
	 * Enter a parse tree produced by the `Number`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	enterNumber?: (ctx: NumberContext) => void;
	/**
	 * Exit a parse tree produced by the `Number`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	exitNumber?: (ctx: NumberContext) => void;

	/**
	 * Enter a parse tree produced by the `StringLiteral`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	enterStringLiteral?: (ctx: StringLiteralContext) => void;
	/**
	 * Exit a parse tree produced by the `StringLiteral`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	exitStringLiteral?: (ctx: StringLiteralContext) => void;

	/**
	 * Enter a parse tree produced by the `BooleanLiteral`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	enterBooleanLiteral?: (ctx: BooleanLiteralContext) => void;
	/**
	 * Exit a parse tree produced by the `BooleanLiteral`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	exitBooleanLiteral?: (ctx: BooleanLiteralContext) => void;

	/**
	 * Enter a parse tree produced by the `Name`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	enterName?: (ctx: NameContext) => void;
	/**
	 * Exit a parse tree produced by the `Name`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	exitName?: (ctx: NameContext) => void;

	/**
	 * Enter a parse tree produced by the `ArrayIndex`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	enterArrayIndex?: (ctx: ArrayIndexContext) => void;
	/**
	 * Exit a parse tree produced by the `ArrayIndex`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	exitArrayIndex?: (ctx: ArrayIndexContext) => void;

	/**
	 * Enter a parse tree produced by the `MemberRange`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	enterMemberRange?: (ctx: MemberRangeContext) => void;
	/**
	 * Exit a parse tree produced by the `MemberRange`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	exitMemberRange?: (ctx: MemberRangeContext) => void;

	/**
	 * Enter a parse tree produced by the `DimColon`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	enterDimColon?: (ctx: DimColonContext) => void;
	/**
	 * Exit a parse tree produced by the `DimColon`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	exitDimColon?: (ctx: DimColonContext) => void;

	/**
	 * Enter a parse tree produced by the `MemberSet`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	enterMemberSet?: (ctx: MemberSetContext) => void;
	/**
	 * Exit a parse tree produced by the `MemberSet`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	exitMemberSet?: (ctx: MemberSetContext) => void;

	/**
	 * Enter a parse tree produced by the `PowerLike`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	enterPowerLike?: (ctx: PowerLikeContext) => void;
	/**
	 * Exit a parse tree produced by the `PowerLike`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	exitPowerLike?: (ctx: PowerLikeContext) => void;

	/**
	 * Enter a parse tree produced by the `PrefixExpression`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	enterPrefixExpression?: (ctx: PrefixExpressionContext) => void;
	/**
	 * Exit a parse tree produced by the `PrefixExpression`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	exitPrefixExpression?: (ctx: PrefixExpressionContext) => void;

	/**
	 * Enter a parse tree produced by the `MultiplyLike`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	enterMultiplyLike?: (ctx: MultiplyLikeContext) => void;
	/**
	 * Exit a parse tree produced by the `MultiplyLike`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	exitMultiplyLike?: (ctx: MultiplyLikeContext) => void;

	/**
	 * Enter a parse tree produced by the `PlusLike`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	enterPlusLike?: (ctx: PlusLikeContext) => void;
	/**
	 * Exit a parse tree produced by the `PlusLike`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	exitPlusLike?: (ctx: PlusLikeContext) => void;

	/**
	 * Enter a parse tree produced by the `ListLike`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	enterListLike?: (ctx: ListLikeContext) => void;
	/**
	 * Exit a parse tree produced by the `ListLike`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	exitListLike?: (ctx: ListLikeContext) => void;

	/**
	 * Enter a parse tree produced by the `CompareLike`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	enterCompareLike?: (ctx: CompareLikeContext) => void;
	/**
	 * Exit a parse tree produced by the `CompareLike`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	exitCompareLike?: (ctx: CompareLikeContext) => void;

	/**
	 * Enter a parse tree produced by the `LogicLike`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	enterLogicLike?: (ctx: LogicLikeContext) => void;
	/**
	 * Exit a parse tree produced by the `LogicLike`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	exitLogicLike?: (ctx: LogicLikeContext) => void;

	/**
	 * Enter a parse tree produced by the `PriorityExpression`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	enterPriorityExpression?: (ctx: PriorityExpressionContext) => void;
	/**
	 * Exit a parse tree produced by the `PriorityExpression`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	exitPriorityExpression?: (ctx: PriorityExpressionContext) => void;

	/**
	 * Enter a parse tree produced by the `FunctionApply`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	enterFunctionApply?: (ctx: FunctionApplyContext) => void;
	/**
	 * Exit a parse tree produced by the `FunctionApply`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	exitFunctionApply?: (ctx: FunctionApplyContext) => void;

	/**
	 * Enter a parse tree produced by the `DotFunctionApply`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	enterDotFunctionApply?: (ctx: DotFunctionApplyContext) => void;
	/**
	 * Exit a parse tree produced by the `DotFunctionApply`
	 * labeled alternative in `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	exitDotFunctionApply?: (ctx: DotFunctionApplyContext) => void;

	/**
	 * Enter a parse tree produced by `ArkcubeScriptParser.program`.
	 * @param ctx the parse tree
	 */
	enterProgram?: (ctx: ProgramContext) => void;
	/**
	 * Exit a parse tree produced by `ArkcubeScriptParser.program`.
	 * @param ctx the parse tree
	 */
	exitProgram?: (ctx: ProgramContext) => void;

	/**
	 * Enter a parse tree produced by `ArkcubeScriptParser.stat`.
	 * @param ctx the parse tree
	 */
	enterStat?: (ctx: StatContext) => void;
	/**
	 * Exit a parse tree produced by `ArkcubeScriptParser.stat`.
	 * @param ctx the parse tree
	 */
	exitStat?: (ctx: StatContext) => void;

	/**
	 * Enter a parse tree produced by `ArkcubeScriptParser.importStat`.
	 * @param ctx the parse tree
	 */
	enterImportStat?: (ctx: ImportStatContext) => void;
	/**
	 * Exit a parse tree produced by `ArkcubeScriptParser.importStat`.
	 * @param ctx the parse tree
	 */
	exitImportStat?: (ctx: ImportStatContext) => void;

	/**
	 * Enter a parse tree produced by `ArkcubeScriptParser.viewStat`.
	 * @param ctx the parse tree
	 */
	enterViewStat?: (ctx: ViewStatContext) => void;
	/**
	 * Exit a parse tree produced by `ArkcubeScriptParser.viewStat`.
	 * @param ctx the parse tree
	 */
	exitViewStat?: (ctx: ViewStatContext) => void;

	/**
	 * Enter a parse tree produced by `ArkcubeScriptParser.cellViewStat`.
	 * @param ctx the parse tree
	 */
	enterCellViewStat?: (ctx: CellViewStatContext) => void;
	/**
	 * Exit a parse tree produced by `ArkcubeScriptParser.cellViewStat`.
	 * @param ctx the parse tree
	 */
	exitCellViewStat?: (ctx: CellViewStatContext) => void;

	/**
	 * Enter a parse tree produced by `ArkcubeScriptParser.cellEXViewStat`.
	 * @param ctx the parse tree
	 */
	enterCellEXViewStat?: (ctx: CellEXViewStatContext) => void;
	/**
	 * Exit a parse tree produced by `ArkcubeScriptParser.cellEXViewStat`.
	 * @param ctx the parse tree
	 */
	exitCellEXViewStat?: (ctx: CellEXViewStatContext) => void;

	/**
	 * Enter a parse tree produced by `ArkcubeScriptParser.cellDBViewStat`.
	 * @param ctx the parse tree
	 */
	enterCellDBViewStat?: (ctx: CellDBViewStatContext) => void;
	/**
	 * Exit a parse tree produced by `ArkcubeScriptParser.cellDBViewStat`.
	 * @param ctx the parse tree
	 */
	exitCellDBViewStat?: (ctx: CellDBViewStatContext) => void;

	/**
	 * Enter a parse tree produced by `ArkcubeScriptParser.variableDecl`.
	 * @param ctx the parse tree
	 */
	enterVariableDecl?: (ctx: VariableDeclContext) => void;
	/**
	 * Exit a parse tree produced by `ArkcubeScriptParser.variableDecl`.
	 * @param ctx the parse tree
	 */
	exitVariableDecl?: (ctx: VariableDeclContext) => void;

	/**
	 * Enter a parse tree produced by `ArkcubeScriptParser.type`.
	 * @param ctx the parse tree
	 */
	enterType?: (ctx: TypeContext) => void;
	/**
	 * Exit a parse tree produced by `ArkcubeScriptParser.type`.
	 * @param ctx the parse tree
	 */
	exitType?: (ctx: TypeContext) => void;

	/**
	 * Enter a parse tree produced by `ArkcubeScriptParser.functionDecl`.
	 * @param ctx the parse tree
	 */
	enterFunctionDecl?: (ctx: FunctionDeclContext) => void;
	/**
	 * Exit a parse tree produced by `ArkcubeScriptParser.functionDecl`.
	 * @param ctx the parse tree
	 */
	exitFunctionDecl?: (ctx: FunctionDeclContext) => void;

	/**
	 * Enter a parse tree produced by `ArkcubeScriptParser.parameterList`.
	 * @param ctx the parse tree
	 */
	enterParameterList?: (ctx: ParameterListContext) => void;
	/**
	 * Exit a parse tree produced by `ArkcubeScriptParser.parameterList`.
	 * @param ctx the parse tree
	 */
	exitParameterList?: (ctx: ParameterListContext) => void;

	/**
	 * Enter a parse tree produced by `ArkcubeScriptParser.parameter`.
	 * @param ctx the parse tree
	 */
	enterParameter?: (ctx: ParameterContext) => void;
	/**
	 * Exit a parse tree produced by `ArkcubeScriptParser.parameter`.
	 * @param ctx the parse tree
	 */
	exitParameter?: (ctx: ParameterContext) => void;

	/**
	 * Enter a parse tree produced by `ArkcubeScriptParser.block`.
	 * @param ctx the parse tree
	 */
	enterBlock?: (ctx: BlockContext) => void;
	/**
	 * Exit a parse tree produced by `ArkcubeScriptParser.block`.
	 * @param ctx the parse tree
	 */
	exitBlock?: (ctx: BlockContext) => void;

	/**
	 * Enter a parse tree produced by `ArkcubeScriptParser.ifStat`.
	 * @param ctx the parse tree
	 */
	enterIfStat?: (ctx: IfStatContext) => void;
	/**
	 * Exit a parse tree produced by `ArkcubeScriptParser.ifStat`.
	 * @param ctx the parse tree
	 */
	exitIfStat?: (ctx: IfStatContext) => void;

	/**
	 * Enter a parse tree produced by `ArkcubeScriptParser.whileStat`.
	 * @param ctx the parse tree
	 */
	enterWhileStat?: (ctx: WhileStatContext) => void;
	/**
	 * Exit a parse tree produced by `ArkcubeScriptParser.whileStat`.
	 * @param ctx the parse tree
	 */
	exitWhileStat?: (ctx: WhileStatContext) => void;

	/**
	 * Enter a parse tree produced by `ArkcubeScriptParser.returnStat`.
	 * @param ctx the parse tree
	 */
	enterReturnStat?: (ctx: ReturnStatContext) => void;
	/**
	 * Exit a parse tree produced by `ArkcubeScriptParser.returnStat`.
	 * @param ctx the parse tree
	 */
	exitReturnStat?: (ctx: ReturnStatContext) => void;

	/**
	 * Enter a parse tree produced by `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	enterExpr?: (ctx: ExprContext) => void;
	/**
	 * Exit a parse tree produced by `ArkcubeScriptParser.expr`.
	 * @param ctx the parse tree
	 */
	exitExpr?: (ctx: ExprContext) => void;

	/**
	 * Enter a parse tree produced by `ArkcubeScriptParser.functionCall`.
	 * @param ctx the parse tree
	 */
	enterFunctionCall?: (ctx: FunctionCallContext) => void;
	/**
	 * Exit a parse tree produced by `ArkcubeScriptParser.functionCall`.
	 * @param ctx the parse tree
	 */
	exitFunctionCall?: (ctx: FunctionCallContext) => void;

	/**
	 * Enter a parse tree produced by `ArkcubeScriptParser.arguments`.
	 * @param ctx the parse tree
	 */
	enterArguments?: (ctx: ArgumentsContext) => void;
	/**
	 * Exit a parse tree produced by `ArkcubeScriptParser.arguments`.
	 * @param ctx the parse tree
	 */
	exitArguments?: (ctx: ArgumentsContext) => void;

	/**
	 * Enter a parse tree produced by `ArkcubeScriptParser.dim`.
	 * @param ctx the parse tree
	 */
	enterDim?: (ctx: DimContext) => void;
	/**
	 * Exit a parse tree produced by `ArkcubeScriptParser.dim`.
	 * @param ctx the parse tree
	 */
	exitDim?: (ctx: DimContext) => void;
}

